This report is a season-to-date look at how the NFL season has transpired, according to advanced analytics. We use play-by-play data from Ben Baldwin and Sebastian Carl’s fantastic nflfastR package to tell the story of the 2021 season thus far. nflfastR is an extension of the original work done by the nflscrapR team (Maksim Horowitz, Ron Yurko, and Sam Ventura).
Football analytics have taken a huge leap forward in the past half decade or so. The NFL has embraced analytics, and data-driven decision making in general, at a rapid pace. Advanced stats have also become much more accessible to the average fan as we now have a wealth of information previously unavailable to the public. A lot of that has to do with the work of the aforementioned groups.
Below you’ll find figures showing key advanced metrics I’m tracking as the season goes on using these public resources.
Offensive and defensive rankings, according to various advanced metrics. Click a column header to sort by that statistic.
Expected Points Added: The change in Expected Points (EP) from one play to the next. EPA yields a single measure of the value of every play. Expected Points was created by the nflfastR team using a statistical model trained on historical data, and takes into account features like down, distance, whether the game is being plated indoors, etc. It helps answer the question “How good of a position is my team in to score as of now?” Higher EPA on offense is better, while a lower EPA on defense is more desirable.
EPA helps provide better context around what plays are more valuable. For example, a five-yard completion on third-and-4 is better than an eight-yard completion on third-and-9, despite the fact that the latter resulted in more yards.
The below isolates Expected Points Added for pass plays only to get a sense of how each team’s quarterback is performing on a per-dropback basis.
This below is another way to look at quarterback efficiency using EPA and Completion Percentage Over Expectation (CPOE) as measures. CPOE is simply the difference between a quarterback’s expected completion percentage and actual completion percentage. Expected completion percentage is a stat measuring the likelihood of a given pass being completed which factors in features like depth of target (air yards). It’s a better measure of accuracy than traditional completion percentage because it takes into account the location of where passes are being thrown.
Some teams are better than others at getting chunk plays. We’re defining explosive plays as those gaining 15 yards or more on rushes and 20 yards+ on passes. We’re highlighting the Bears simply because I’m a Bears fan and want to easily track how they stack up using this metric. Spoiler: they’ve been near the bottom of the league in explosive plays the past few years.
Success rate is defined as the percentage of plays that were successful for the offense – in other words, the percentage of plays with positive EPA. It’s meant to measure the consistency of a team’s performance from play to play. One thing to note is it doesn’t provide context for what happened on a play as it is just a binary indicator of whether a play was successful or not. For example, success rate will classify both an interception and a harmless incomplete pass as unsuccessful plays for the offense, even though the former is far less desirable.
Here we focus on quarterback play only as the QB position is the most valuable position on the field. As the quarterback goes, the team goes.
The below shows what quarterbacks have completed a either higher percentage or lower percentage of their passes than expected, according to the nflfastR model.
Teams are going for it on 4th Down more often nowadays. The below table shows each team’s go-for-it rates on fourth-and-short over the last decade. From 2000-17, teams went for it on fourth-and-1, fourth-and-2, or fourth-and-3 just XX% of the time. In 2018, that rate jumped to 45%. We will track how each team fares on its fourth-down decision making throughout the season.
| 4th Down Decison Making | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Percentages shown are how often a team went for it when it on 4th & short, defined as less than 3 yards to go, and when win probability was between 20% and 80% (game-neutral situations). 2021 data is thru {current_week}. | |||||||||||||
| team | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | |
| CIN | 25.0 | 15.8 | 35.7 | 40.0 | 18.8 | 40.0 | 23.1 | 16.7 | 45.5 | 46.2 | 37.5 | 100.0 | |
| CLE | 16.7 | 11.1 | 20.0 | 33.3 | 28.6 | 27.3 | 28.6 | 55.6 | 50.0 | 66.7 | 62.5 | 100.0 | |
| DET | 50.0 | 28.6 | 14.3 | 26.3 | 28.6 | 16.7 | 35.0 | 7.1 | 21.1 | 28.6 | 50.0 | 100.0 | |
| IND | 9.5 | 10.0 | 18.8 | 21.4 | 37.5 | 11.1 | 38.5 | 7.7 | 43.8 | 63.2 | 68.4 | 100.0 | |
| NYJ | 25.0 | 10.5 | 25.0 | 0.0 | 16.7 | 20.0 | 17.6 | 17.6 | 30.8 | 70.0 | 50.0 | 100.0 | |
| DEN | 42.9 | 4.3 | 15.4 | 37.5 | 0.0 | 26.1 | 15.8 | 33.3 | 29.4 | 23.1 | 28.6 | 75.0 | |
| ATL | 57.1 | 25.0 | 5.9 | 26.7 | 10.0 | 38.5 | 58.3 | 22.2 | 33.3 | 71.4 | 71.4 | 66.7 | |
| BAL | 33.3 | 28.6 | 20.0 | 33.3 | 52.6 | 40.9 | 41.2 | 46.2 | 60.0 | 90.0 | 50.0 | 66.7 | |
| BUF | 31.6 | 25.0 | 9.1 | 22.7 | 15.4 | 20.0 | 36.4 | 16.7 | 62.5 | 60.0 | 53.8 | 66.7 | |
| CAR | 10.0 | 10.0 | 54.5 | 46.7 | 27.8 | 35.7 | 22.2 | 25.0 | 41.7 | 70.0 | 72.7 | 66.7 | |
| LV | 43.8 | 40.0 | 13.3 | 7.1 | 7.1 | 40.0 | 12.5 | 38.9 | 38.5 | 35.7 | 63.2 | 60.0 | |
| WAS | 14.3 | 22.2 | 35.3 | 13.3 | 23.1 | 16.7 | 25.0 | 28.6 | 42.9 | 12.5 | 46.2 | 60.0 | |
| CHI | 33.3 | 30.0 | 44.4 | 40.0 | 31.2 | 17.4 | 40.0 | 0.0 | 38.5 | 23.1 | 37.5 | 50.0 | |
| GB | 27.8 | 26.7 | 15.4 | 37.5 | 28.6 | 40.0 | 43.8 | 37.5 | 22.2 | 40.0 | 81.8 | 50.0 | |
| LAC | 0.0 | 22.2 | 30.8 | 23.8 | 25.0 | 0.0 | 38.5 | 13.3 | 20.0 | 27.3 | 44.4 | 50.0 | |
| MIA | 13.6 | 20.0 | 21.4 | 22.2 | 23.1 | 23.1 | 14.3 | 33.3 | 25.0 | 50.0 | 40.0 | 50.0 | |
| ARI | 30.8 | 27.3 | 25.0 | 11.1 | 20.0 | 33.3 | 16.7 | 10.5 | 22.2 | 53.3 | 76.5 | 33.3 | |
| SF | 25.0 | 28.6 | 7.1 | 25.0 | 35.7 | 44.4 | 50.0 | 33.3 | 12.5 | 43.8 | 47.1 | 33.3 | |
| TB | 35.0 | 35.7 | 36.4 | 25.0 | 50.0 | 14.3 | 30.0 | 18.2 | 33.3 | 46.2 | 36.4 | 33.3 | |
| DAL | 35.3 | 9.1 | 23.5 | 11.1 | 57.1 | 19.0 | 21.1 | 40.0 | 47.1 | 50.0 | 76.9 | 0.0 | |
| HOU | 50.0 | 15.4 | 11.8 | 26.7 | 33.3 | 50.0 | 33.3 | 25.0 | 31.2 | 66.7 | 44.4 | 0.0 | |
| JAX | 61.5 | 33.3 | 21.4 | 44.4 | 25.0 | 0.0 | 30.0 | 27.3 | 30.8 | 20.0 | 40.0 | 0.0 | |
| KC | 36.4 | 11.8 | 40.0 | 18.8 | 20.0 | 25.0 | 36.4 | 16.7 | 50.0 | 50.0 | 72.7 | 0.0 | |
| LA | 25.0 | 22.2 | 26.1 | 17.6 | 6.7 | 12.5 | 26.3 | 18.2 | 25.0 | 14.3 | 31.8 | 0.0 | |
| MIN | 26.7 | 25.0 | 13.3 | 26.3 | 26.7 | 20.0 | 26.7 | 14.3 | 50.0 | 33.3 | 57.1 | 0.0 | |
| NE | 44.4 | 14.3 | 16.7 | 23.5 | 18.8 | 35.7 | 9.1 | 36.4 | 47.1 | 35.7 | 40.0 | 0.0 | |
| NO | 27.3 | 41.7 | 20.0 | 28.6 | 33.3 | 42.9 | 53.8 | 50.0 | 68.8 | 33.3 | 41.2 | 0.0 | |
| NYG | 11.1 | 14.3 | 10.0 | 21.4 | 30.0 | 14.3 | 27.8 | 23.5 | 54.5 | 55.6 | 76.9 | 0.0 | |
| PHI | 37.5 | 29.4 | 44.4 | 55.6 | 30.0 | 50.0 | 77.8 | 64.7 | 60.0 | 62.5 | 63.6 | 0.0 | |
| PIT | 16.7 | 27.3 | 34.8 | 33.3 | 22.2 | 33.3 | 31.2 | 25.0 | 38.5 | 33.3 | 42.9 | 0.0 | |
| SEA | 15.8 | 23.1 | 15.8 | 18.2 | 16.7 | 25.0 | 40.0 | 25.0 | 43.8 | 11.1 | 27.3 | 0.0 | |
| TEN | 8.3 | 50.0 | 37.5 | 36.4 | 7.1 | 10.5 | 0.0 | 25.0 | 33.3 | 40.0 | 50.0 | 0.0 | |
| DATA: nflfastR TABLE: @steodosescu |
|||||||||||||
The below resources were used to create the above plots within this document. Many thanks to all the authors of these fantastic resources:
| Title/Link | Author | Description |
|---|---|---|
| R for Data Science | Hadley Wickham, Garret Grolemund | A great overview of the tidyverse, covers everything from reading data in, data manipulation/summarization, data viz, and general programming in R |
| nflfastR Graphics Cookbook | Thomas Mock | As step-by-step guide on how to improve your nflfastR graphics. |
| Beginner’s Guide to nflfastR | Ben Baldwin | Covers introductory examples of how to get started with the nflfastR package, and more broadly, how to use R and the tidyverse. |
| R Markdown Intro Guide | R Studio | Intro primer to authoring R Markdown documents.: |
ggplot2 Cookbook |
Winston Chang | Quick cookbook of ggplot2 plots |
| R Markdown Book | Yihui Xie, J. J. Allaire, Garrett Grolemund | The definitive guide outlining what you can do with the rmarkdown package (Allaire, Xie, McPherson, et al. 2021), which was first created in early 2014. The package has steadily evolved into a complete ecosystem for authoring documents in a variety of output formats including the output of this document that you’re reading. |